package com.ccit.springbootlaw.service.impl;

import com.ccit.springbootlaw.mapper.CaseLawRelationshipMapper;
import com.ccit.springbootlaw.pojo.CaseLawRelationship;
import com.ccit.springbootlaw.service.CaseLawRelationshipService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * 案件与法律关系服务实现类
 * 实现了CaseLawRelationshipService接口，提供了案件与法律关系相关的业务逻辑
 */
@Service
public class CaseLawRelationshipServiceImpl implements CaseLawRelationshipService {

    @Autowired
    private CaseLawRelationshipMapper caseLawRelationshipMapper;

    /**
     * 根据ID查找案件与法律关系
     *
     * @param id 关系ID
     * @return 返回找到的关系对象，如果未找到则返回null
     */
    @Override
    public CaseLawRelationship findById(long id) {
        return caseLawRelationshipMapper.findById(id);
    }

    /**
     * 根据案件ID查找相关法律关系
     *
     * @param caseId 案件ID
     * @return 返回与该案件相关的法律关系列表
     */
    @Override
    public List<CaseLawRelationship> findByCaseId(int caseId) {
        return caseLawRelationshipMapper.findByCaseId(caseId);
    }

    /**
     * 根据法律ID查找相关案件关系
     *
     * @param lawId 法律ID
     * @return 返回与该法律相关的案件关系列表
     */
    @Override
    public List<CaseLawRelationship> findByLawId(int lawId) {
        return caseLawRelationshipMapper.findByLawId(lawId);
    }

    /**
     * 插入新的案件与法律关系
     *
     * @param relationship 关系对象
     * @return 返回插入操作影响的行数
     */
    @Override
    public int insertCaseLawRelationship(CaseLawRelationship relationship) {
        return caseLawRelationshipMapper.insertCaseLawRelationship(relationship);
    }

    /**
     * 根据ID删除案件与法律关系
     *
     * @param id 关系ID
     * @return 返回删除操作影响的行数
     */
    @Override
    public int deleteCaseLawRelationshipById(long id) {
        return caseLawRelationshipMapper.deleteCaseLawRelationshipById(id);
    }

    /**
     * 更新案件与法律关系
     *
     * @param relationship 关系对象
     * @return 返回更新操作影响的行数
     */
    @Override
    public int updateCaseLawRelationship(CaseLawRelationship relationship) {
        return caseLawRelationshipMapper.updateCaseLawRelationship(relationship);
    }

    /**
     * 查询所有案件与法律关系
     *
     * @return 返回所有案件与法律关系的列表
     */
    @Override
    public List<CaseLawRelationship> findAll() {
        return caseLawRelationshipMapper.findAll();
    }
}